<template>
  <view>
    <!-- 搜索组件 -->
    <view class="search-box">
      <my-search @click="gotoSearch"></my-search>
    </view>
    <!-- 轮播图的区域 -->
    <swiper :indicator-dots="true" :autoplay="true" :interval="3000" :duration="1000" :circular="true">
      <!-- 循环渲染轮播图中的每一项 -->
      <swiper-item v-for="(item,i) in swiperList" :key="i">
        <!-- 使用 navigator 组件进行页面跳转，并传递商品ID -->
        <navigator class="swiper-item" :url="'/subpkg/goods_detail/goods_detail?goods_id='+item.goods_id">
          <image :src="item.image_src"></image>
        </navigator>
      </swiper-item>
    </swiper>
  
    <!-- 分类导航区域 -->
    <view class="nav-list"> 
      <view class="nav-item" v-for="(item,i) in navList" :key="i" @click="navClickHandler(item)">
        <image :src="item.image_src" class="nav-img"></image>
      </view>
    </view>
    
    <!-- 楼层区域 -->
    <!-- 楼层容器 -->
    <view class="floor-list">
      <!-- 楼层item项 -->
      <view class="floor-item" v-for="(item,i) in floorList" :key="i">
        <!-- 楼层标题 -->
        <image :src="item.floor_title.image_src" class="floor-title"></image>
        <!-- 楼层的图片区域 -->
        <view class="floor-img-box">
          <!-- 左侧大图片的盒子 -->
          <navigator class="left-img-box" :url="item.product_list[0].url">
            <image :src="item.product_list[0].image_src" :style="{width:item.product_list[0].image_width + 'rpx'}" mode="widthFix"></image>
          </navigator>
          <!-- 右侧4个小图片的盒子 -->
          <view class="right-img-box">
            <navigator class="right-img-item" v-for="(item2,i2) in item.product_list" :key="i2"  :url="item2.url">
              <image :src="item2.image_src" mode="widthFix" :style="{width:item2.image_width + 'rpx'}" v-if="i2 !== 0" ></image>
            </navigator>
          </view>
        </view>
        
      </view>
    </view>
    
  </view>  
</template>

<script>
  export default {
    data() {
      return {
        // 这是轮播图的数据列表
        swiperList:[],
        // 分类导航的数据列表
        navList:[],
        //1.楼层的数据列表
        floorList:[]
      };
    },
    onLoad() {
      // 调用方法，获取轮播图的数据
      this.getSwiperList()
      // 调用方法，获取分类导航的数据
      this.getNavList()
      // 2、在onload中调用获取楼层数据的方法
      this.getFloorList()
    },
    // 方法
    methods:{
      async getSwiperList(){
        const {data:res} = await uni.$http.get('/api/public/v1/home/swiperdata')
        // 请求失败
        if(res.meta.status !== 200)
          return uni.$showMsg()   
        //将调用的数据赋值给swiperList 
        this.swiperList = res.message
        uni.$showMsg('数据请求成功！')
      },
      async getNavList(){
        const {data:res} = await uni.$http.get('/api/public/v1/home/catitems')
        // 请求失败
        if(res.meta.status !== 200)
          return uni.$showMsg()  
        //将调用的值赋给navList 
        this.navList = res.message
        uni.$showMsg('数据请求成功！')
        },
        navClickHandler(item){
          if(item.name==='分类'){
            uni.switchTab({
              url:'/pages/cate/cate'
            })
          }
        },
        // 3、定义获取楼层列表数据的方法
        async getFloorList(){
          const {data:res} = await uni.$http.get('/api/public/v1/home/floordata')
          // 请求失败
          if(res.meta.status !== 200)
          return uni.$showMsg()
          // 对数据进行处理
          res.message.forEach(floor => {
            floor.product_list.forEach(prod =>{
              prod.url = '/subpkg/goods_list/goods_list?' + prod.navigator_url.split('?')[1]
            })
          })
          // 将调用的数据赋值给floorList
          this.floorList = res.message
          uni.$showMsg('数据请求成功！')
        },
        // 搜索页面
        gotoSearch(){
          uni.navigateTo({
            url:'/subpkg/search/search'
          })
        }
      
    }
  }
</script>

<style lang="scss">
  // 轮播图外部区域
swiper{
  height:330rpx;
  .swiper-item,
  image{
    width:100%;
    height:100%;
  }
}
// 美化分类导航页面结构
.nav-list{
  display: flex;  //使用弹性布局实现水平排列
  justify-content: space-around; //子元素间距自动均分
  margin: 15px 0; //上下外边距15px，左右自动贴边
  .nav-img{
    width:128rpx; //图片固定宽度
    height: 140rpx; //图片固定高度
  }
  }
  .floor-title{
    width: 100%;
    height:60rpx;
   }
   .right-img-box{
     display: flex;
     flex-wrap: wrap;
     justify-content: space-around;
   }
   // .left-img-box{
   //   display: flex;
   //   flex
   // }
   .floor-img-box{
     display:flex;
     padding-left: 10rpx;
   }
   .search-box{
     // 设置定位效果为“吸顶”
     position: sticky;
     // 吸顶的位置
     top: 0;
     // 提高层级，防止被轮播图覆盖
     z-index: 999;
   }


</style>
